#include <iostream>
#include <string>
#include <vector>
#include <functional>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <signal.h>
#include <stdlib.h>

using namespace std;

// void catchSig(int signum)
// {
//     cout << "进程捕捉到了一个信号，正在处理中：" << signum << "Pid:" << getpid() << endl;
// }

static void Usage(string proc)
{
    cout << "Usage:\r\n\t" << proc << "signumber processid" << endl;
}

int main(int argc, char *argv[])
{
    if (argc != 3)
    {
        Usage(argv[0]);
        exit(1);
    }

    int signumber = atoi(argv[1]);
    int procid = atoi(argv[2]);
    kill(procid, signumber);

    // signal(SIGINT,catchSig);
    // signal(SIGQUIT,catchSig);
    // while(true)
    // {
    //     cout<<"我是一个进程，我正在运行……, Pid："<<getpid()<<endl;
    //     sleep(1);
    // }

    // pid_t id = fork();
    // if (id == 0)
    // {
    //     sleep(100);
    //     int a = 100;
    //     a /= 0;
    //     exit(0);
    // }

    // int status = 0;
    // waitpid(id, &status, 0);
    // cout << "父进程：" << getpid() << " 子进程：" << id << \ 
    // " exit sig: "<< (status & 0x7F) << " is core: " << ((status >> 7) & 1) << endl;

    return 0;
}